#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <audiothread.h>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow) {
    ui->setupUi(this);
}

MainWindow::~MainWindow() {
    delete ui;
}

void MainWindow::on_audioButton_clicked() {
    if (!_audioThread) { // 点击了开始录音
        // 开启线程
        _audioThread = new AudioThread(this); // 当this析构,这个线程也会析构
        _audioThread->start(); // 会调用线程内部的run()方法

        connect(_audioThread, &AudioThread::finished,
        [this]() { // 线程结束
            _audioThread = nullptr;
            ui->audioButton->setText("开始录音");
        });

        ui->audioButton->setText("结束录音");
    } else { // 点击了结束录音
//        _audioThread->setStop(true); // 让线程停止运行
        _audioThread->requestInterruption(); // 线程机制自带的请求中断,无需我们自己写_stop判断
        _audioThread = nullptr; // 让线程指向空
        ui->audioButton->setText("开始录音");
    }
}

